﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;

using System.Text;
using System.Windows.Forms;
using DAO;
using DTO;

namespace ProductManagement
{
    public partial class frmLoaiGas : Form
    {
        public frmLoaiGas()
        {
            InitializeComponent();
        }

        private void LoaiGas_Load(object sender, EventArgs e)
        {
            try
            {
                DataTable dt = DataAccess.Query("select ID, TenLoai from LoaiGas order by TenLoai");
                dt.Columns.Add("STT");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dt.Rows[i]["STT"] = i + 1;
                }
                dgvLoaiGas.AutoGenerateColumns = false;
                dgvLoaiGas.DataSource = dt;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Không thể load form\r\n" + ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Close();
            }
        }

        private void dgvLoaiGas_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvLoaiGas.SelectedRows.Count > 0)
            {
                btnSua.Enabled = true;
                btnXoa.Enabled = true;
                txtID.Text = dgvLoaiGas.SelectedRows[0].Cells["ID"].Value.ToString();
                txtTen.Text = (String)dgvLoaiGas.SelectedRows[0].Cells["TenLoai"].Value;
            }
            else
            {
                btnSua.Enabled = false;
                btnXoa.Enabled = false;
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtID.Text != null && txtTen.Text != "")
                {
                    LoaiGasDTO loaiGas = new LoaiGasDTO();
                    loaiGas.TenLoai = txtTen.Text;
                    loaiGas.CanNang = 0;
                    loaiGas.Gia = 0;
                    LoaiGasDAO.InsertLoaiGas(loaiGas);
                    txtID.Text = loaiGas.Id.ToString();
                    MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoaiGas_Load(sender, e);
                }
                else
                {
                    MessageBox.Show("Dữ liệu chưa đúng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Cập nhật không thành công\r\n" + ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtID.Text != null && txtTen.Text != "")
                {
                    LoaiGasDTO loaiGas = new LoaiGasDTO();
                    loaiGas.Id = int.Parse(txtID.Text);
                    loaiGas.TenLoai = txtTen.Text;
                    LoaiGasDAO.UpdateLoaiGas(loaiGas);
                    MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoaiGas_Load(sender, e);
                }
                else
                {
                    MessageBox.Show("Dữ liệu chưa đúng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("Cập nhật dữ liệu không thành công\r\n" + ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Tất cả bình gas và vỏ bình gas thuộc loại này sẽ bị xóa?\r\nChọn Yes - đồng ý xóa\r\nChọn No - không tiếp tục xóa", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {
                    foreach (DataGridViewRow aRow in dgvLoaiGas.SelectedRows)
                    {
                        int Id = (int)aRow.Cells["ID"].Value;
                        LoaiGasDAO.DeleteLoaiGas(Id);
                    }
                    MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoaiGas_Load(sender, e);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Cập nhật dữ liệu không thành công\r\n" + ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnBack_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void dgvLoaiGas_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                try
                {
                    foreach (DataGridViewRow aRow in dgvLoaiGas.SelectedRows)
                    {
                        int Id = (int)aRow.Cells["ID"].Value;
                        LoaiGasDAO.DeleteLoaiGas(Id);
                    }                    
                    MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoaiGas_Load(sender, e);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Cập nhật dữ liệu không thành công\r\n" + ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }

        private void btnImport_Click(object sender, EventArgs e)
        {
            try
            {                
                String strFileName = "";
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Title = "Open file";
                dlg.Filter = "Excel Workbook|*.xls;*.xlsx|All files|*.*";
                dlg.Multiselect = false;
                if (dlg.ShowDialog() == DialogResult.OK)
                {                    
                    strFileName = dlg.FileName;
                    DataTable dt = new DataTable();
                    if(dlg.SafeFileName.IndexOf(".xlsx") >= 0)
                       dt = DataAccess.ImportDataXLSX(strFileName, "LoaiGas");
                    else if(dlg.SafeFileName.IndexOf(".xls") >= 0)
                        dt = DataAccess.ImportDataXLS(strFileName, "LoaiGas");
                    else
                        dt = DataAccess.ImportDataXLSX(strFileName, "LoaiGas");
                    foreach (DataRow aRow in dt.Rows)
                    {
                        LoaiGasDTO loaiGas = new LoaiGasDTO();
                        loaiGas.TenLoai = aRow[0] as String;
                        LoaiGasDAO.InsertLoaiGas(loaiGas, true);
                    }
                    MessageBox.Show("Import dữ liệu thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    OnLoad(e);
                }
            }
            catch (Exception ex) {
                MessageBox.Show("Import dữ liệu không thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
    }
}
